/**
 * 存储登录人信息 (token)
 */
import { userAccountLogin } from '@/api/user'

export default {
  namespaced: true, // 开启命名空间, 避免定义变量名字冲突
  // state  定义写成函数, 避免引用问题
  state: () => ({
    profile: {
      id: '',
      avatar: '',
      nickname: '',
      account: '',
      mobile: '',
      token: ''
    }
  }),
  mutations: {
    /**
     *
     * @param {*} state   当前模块数据
     * @param {*} payload 传递修改的数据
     */
    setProfile (state, payload) {
      state.profile = payload
    },

    // 删除登录人信息 => 删除内存+本地(localStorage)
    delProfile (state) {
      state.profile = {}
    }
  },
  actions: {
    // 获取后台当前登录人数据
    // payload => 用户名和密码 {account, password }
    async getProfileAction ({ commit }, payload) {
      const { result } = await userAccountLogin(payload)
      console.log(result)
      commit('setProfile', result)
    },

    // 退出登录删除登录人相关信息(账号信息+购物车信息)
    logoutAction ({ commit }) {
      commit('delProfile')
      // { root: true } 站在上帝视角/根store位置
      commit('cart/setCartList', [], { root: true })
    }
  }
}
